Content addressable memories (CAMs) are used in search applications, as well as other applications where computation by processors are to be minimized. A main difference between CAMs and regular memories is that an input to a CAM is a data string (comparand) on which a parallel search is done on a memory array of CAM cells to find matches with stored data therein. If a match is found, the address or location of the matched data is provided as an output from the CAM. Today's CAMs may be relatively expensive with large memories. There are two basic types of CAMs: binary CAM (BCAM) and ternary CAM (TCAM). In a BCAM, logic “1” and logic “0” matches are sought for the data that is being compared, whereas in a TCAM, a “don't care” term can also be used to mask the stored data bits.